/// about.h
/// Contains various information about the program: name, version, copyright, 
/// usage info, etc.
/// This data is located in a single header to avoid cluttering of the source 
/// files with it.

/////////////////////////////////////////////////////////////////////////////
// Copyright 2009-2010 
// Institute for System Programming of the Russian Academy of Sciences (ISPRAS)
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
//    http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License. 
/////////////////////////////////////////////////////////////////////////////

#ifndef __MIST_ABOUT_H_2010_INCLUDED__
#define __MIST_ABOUT_H_2010_INCLUDED__

// config.h will be generated by 'configure' script. 
// PACKAGE_* constants are defined in config.h
// If, for any reason, config.h is not available or is incomplete, we 
// provide reasonable default values for the parameters below.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

// Short name of the tool
#ifdef PACKAGE_NAME
#define MIST_SHORT_NAME PACKAGE_NAME
#else 
#define MIST_SHORT_NAME \
    "mist_engine"
#endif    

// Version
#ifdef PACKAGE_VERSION
#define MIST_VERSION PACKAGE_VERSION
#else
#define MIST_VERSION \
    "1.0.0 final"
#endif

// Long name of the tool
#define MIST_LONG_NAME \
    "MiST (\"Minimal String Template\") Engine command line tool"

// Email address to report bugs to
#ifdef PACKAGE_BUGREPORT
#define MIST_BUGREPORT PACKAGE_BUGREPORT
#else 
#define MIST_BUGREPORT \
    "http://sourceforge.net/projects/template2code/develop"
#endif 

// Copyright notice
#define MIST_COPYRIGHT \
    "Copyright 2009-2010\n" \
    "Institute for System Programming of the Russian Academy of Sciences (ISPRAS)\n"    

// Short license notice (see LICENSE for details)
#define MIST_LICENSE \
    MIST_COPYRIGHT \
    " \n"	\
    " Licensed under the Apache License, Version 2.0 (the \"License\").\n"	\
    " You may obtain a copy of the License at\n"	\
    " \n"	\
    "    http://www.apache.org/licenses/LICENSE-2.0\n"	\
    " \n"	\
    " Unless required by applicable law or agreed to in writing, software\n"	\
    " distributed under the License is distributed on an \"AS IS\" BASIS,\n"	\
    " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"	\
    " See the License for the specific language governing permissions and\n"	\
    " limitations under the License. \n"	

// Usage information
#define MIST_USAGE \
    "Usage: mist_engine [options] <path_to_template(s)> <values_file>\n" \
    "Options:\n" \
    "  -s, --simplified-mode \n" \
    "              Operate in simplified mode: process a single template and output\n" \
    "              the result to stdout.\n" \
    "  --version   Display version information and then exit.\n" \
    "  --help      Display this information and then exit.\n" \
    "\n" \
    "MiST (Minimal String Template) Engine tool generates data based on special " \
    "templates.\n" \
    "\n" \
    "In some cases, the templates are little more than just \"documents with holes\" " \
    "where the engine sticks appropriate data. Each \"hole\", or placeholder, has a " \
    "name and can be assigned one or more values or even none at all. A more complex " \
    "template can refer to other templates (\"subtemplates\") - this is as if the " \
    "subtemplates were included in the template.\n" \
    "\n" \
    "The values for some or all of the placeholders should be specified in " \
    "<values_file> (usually in the form of <NAME> = <VALUE> records). See MiST " \
    "Engine reference for the detailed description of MiST Engine including the " \
    "formats of template file and files with parameter values.\n" \
    "\n" \
    "The tool can operate in regular mode or in simplified mode.\n" \
    "\n" \
    "In the regular mode, <path_to_template(s)> should specify the directory from " \
    "which a group of templates is to be loaded. The main template in the group and " \
    "the .cfg file for it should have the same name as the directory. The template " \
    "of the path to the output file should be specified in the .cfg file in " \
    "FILE_PATH_TEMPLATE parameter. The path to the output file will be evaluated by " \
    "the engine and then the result of the evaluation of the template group will be " \
    "stored there. In the most simple case, the template of that path can be " \
    "something like just \"output.dat\" instructing the tool to store the results in " \
    "\"output.dat\" file in the current directory.\n" \
    "\n" \
    "Begin and end markers of placeholders could also be specified in the .cfg file " \
    "but this is not mandatory. The default ones are \"<$\" and \"$>\".\n" \
    "\n" \
    "In the simplified mode, a single template is evaluated and the result is output " \
    "to stdout. The template is loaded from the file specified by " \
    "<path_to_template(s)>. The template is assumed to use the default begin and end " \
    "markers of placeholders.\n" \
    "\n" \
    "Note that MiST Engine command line tool is self-contained: it does not depend " \
    "on MiST Engine dynamic library and thus can be used and distributed " \
    "on its own.\n" \
    "\n" \
    "Bug reporting:\n" \
    "if you have found a bug in MiST Engine or want to make a feature request, " \
    "the tracker is available at\n" \
    MIST_BUGREPORT \
    ""

#endif // __MIST_ABOUT_H_2010_INCLUDED__
